--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
docs/agents/module-ownership.md v4.8.1 (f6cc7b83) Text, 11.00 KB
Module ownership map
Domain ownership for MeshChatX. Use this when deciding where code and tests live.
Orchestration entry remains T383838meshchatx.meshchat (T383838ReticulumMeshChat, T383838main).
Schema contracts live under T383838tests/backend/ (not production route modules).
Backend
┌───────────────────┬─────┬─────────────────────────────┬──────────────────────────────┬─────┬─────┐
│ Domain │ Ma… │ HTTP route module │ WS module │ Pr… │ Fr… │
├───────────────────┼─────┼─────────────────────────────┼──────────────────────────────┼─────┼─────┤
│ Identity │ T383838id… │ T383838http/routes/identities.py │ T383838http/ws/dispatch.py │ T383838te… │ Id… │
│ Status / startup │ T383838li… │ T383838http/routes/status.py │ (status via REST) │ T383838te… │ Ap… │
│ Auth / CSRF │ T383838cs… │ T383838http/routes/auth.py │ T383838http/ws/dispatch.py │ T383838te… │ Au… │
│ Messages / LXMF │ T383838me… │ T383838http/routes/messages.py, T383838l… │ T383838http/ws/dispatch.py │ LX… │ T383838me… │
│ Telephone / LXST │ T383838te… │ T383838http/routes/telephone.py, T383838… │ T383838http/ws/dispatch.py │ te… │ T383838ca… │
│ RRC │ T383838rr… │ T383838http/routes/rrc.py │ T383838http/ws/dispatch.py │ RR… │ T383838re… │
│ Map │ T383838ma… │ T383838http/routes/map.py │ marker updates via broadcast │ ma… │ T383838ma… │
│ Plugins │ T383838pl… │ T383838http/routes/plugins.py, T383838si… │ T383838http/ws/dispatch.py │ pl… │ T383838se… │
│ FileSync │ T383838rn… │ T383838http/routes/filesync.py │ (REST-heavy) │ fi… │ T383838fi… │
│ Interfaces │ T383838in… │ T383838http/routes/interfaces.py │ (announce loops on app) │ in… │ T383838in… │
│ Database / backup │ T383838da… │ T383838http/routes/database.py, T383838m… │ (broadcasts on restore) │ ba… │ Ab… │
│ Docs │ T383838do… │ T383838http/routes/docs.py │ (none) │ do… │ T383838do… │
│ Sandbox │ T383838la… │ T383838http/routes/status.py │ (none) │ la… │ We… │
│ RNS Link API │ T383838rn… │ (WS only) │ T383838http/ws/dispatch.py │ T383838te… │ pl… │
│ Config │ T383838co… │ T383838http/routes/config.py │ T383838http/ws/dispatch.py │ se… │ T383838se… │
└───────────────────┴─────┴─────────────────────────────┴──────────────────────────────┴─────┴─────┘
HTTP package layout
T282828
meshchatx/src/backend/http/
context.py
errors.py
live_names.py
middleware.py
register.py
routes/<domain>.py
routes/__init__.py
ws/dispatch.py
T383838register_all_routes(routes, app) is the sole composition entry. Call it only from
T383838ReticulumMeshChat._define_routes. Domain register functions are listed in fixed order
in T383838routes/__init__.py. Free names resolve through T383838live_names.inject_meshchat_names.
WS inbound handlers live in T383838ws/handlers_*.py and are composed by T383838ws/dispatch.py.
Frontend mega-pages
Placement for extracts. Follow T383838docs/agents/skills/vue-mega-page-split/SKILL.md.
Do not invent folders outside this table.
┌─────────────────────────────┬──────────────────────────────┬─────────────────────────────────────┐
│ Kind │ Put it here │ Example │
├─────────────────────────────┼──────────────────────────────┼─────────────────────────────────────┤
│ Page-private panel or UI │ T383838components/<feature>/intern… │ MapSearchBar │
│ Settings chunk │ T383838components/settings/section… │ TelephonySettingsSection │
│ Pure logic │ colocated T383838*.js or T383838js/<featu… │ clusterUtils, settingsConfigService │
│ Cross-feature primitive │ root T383838components/ or T383838compone… │ ConfirmDialog, Toggle │
│ Nav, tools, commands wiring │ T383838js/registries/ only │ never grow App.vue for discovery │
└─────────────────────────────┴──────────────────────────────┴─────────────────────────────────────┘
┌──────────────────────────────────────────┬─────┬───────────┬───────────────────────────────┬─────┐
│ Page shell │ On… │ Planned … │ Shared JS │ Pr… │
├──────────────────────────────────────────┼─────┼───────────┼───────────────────────────────┼─────┤
│ T383838settings/SettingsPage.vue │ T383838se… │ more sec… │ T383838js/settings/ │ T383838Se… │
│ T383838messages/ConversationViewer.vue │ T383838co… │ further … │ T383838conversationMessageHelpers.js │ Co… │
│ T383838call/CallPage.vue │ T383838ca… │ more tab… │ call helpers │ T383838Ca… │
│ T383838map/MapPage.vue │ T383838ma… │ more ove… │ T383838js/map* │ ma… │
│ T383838relay/RelayChatPage.vue │ re… │ further … │ T383838js/relay* │ re… │
│ T383838App.vue │ T383838la… │ more she… │ registries, WS shell │ T383838Ap… │
│ T383838network-visualiser/NetworkVisualiser.vue │ T383838ne… │ more chr… │ T383838js/networkVisualiser* │ ne… │
│ T383838interfaces/AddInterfacePage.vue │ T383838in… │ further … │ T383838js/interfaceDiscoveryUtils.js │ Ad… │
└──────────────────────────────────────────┴─────┴───────────┴───────────────────────────────┴─────┘
Frontend ownership contracts:
• T383838tests/frontend/fixtures/frontend_mega_page_ownership.json
• T383838tests/frontend/fixtures/frontend_symbol_continuity/
• T383838tests/frontend/frontendOwnershipContract.test.js
Contract ownership
┌───────────────────────────┬──────────────────────────────────────────────────────────────────────┐
│ Contract │ Owner files │
├───────────────────────────┼──────────────────────────────────────────────────────────────────────┤
│ HTTP route inventory │ T383838tests/backend/fixtures/http_api_routes.json, scanners in T383838http_api_c… │
│ HTTP JSON GET schemas │ T383838http_api_response_schemas.py, T383838http_api_response_registry.py │
│ Core status/auth/app_info │ T383838api_json_contract_schemas.py │
│ WS message manifest │ T383838tests/backend/fixtures/ws_message_manifest.json, T383838ws_contract_helper… │
└───────────────────────────┴──────────────────────────────────────────────────────────────────────┘
Schema contracts stay in T383838tests/backend/. Route and WS owners are production modules under T383838backend/http/.
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────